import '../shared/models/word.dart';

class EsperantoVocabularyBatch7 {
  // 更多基础词根 (50个)
  static final List<Word> _moreBasicRoots = [
    Word(
      id: 'sent_root_001',
      esperanto: 'sent-',
      english: 'feel',
      pronunciation: 'SENT',
      definition: 'Feel, sense, emotion',
      examples: ['senti (to feel)', 'sento (feeling)', 'sentema (sensitive)'],
      category: 'Basic Roots',
      audioUrl: '',
      difficulty: 1,
    ),
    Word(
      id: 'temp_root_001',
      esperanto: 'temp-',
      english: 'time',
      pronunciation: 'TEMP',
      definition: 'Time, temporal, period',
      examples: ['tempo (time)', 'tempi (time)', 'samtempo (same time)'],
      category: 'Basic Roots',
      audioUrl: '',
      difficulty: 1,
    ),
    Word(
      id: 'trov_root_001',
      esperanto: 'trov-',
      english: 'find',
      pronunciation: 'TROV',
      definition: 'Find, discover, locate',
      examples: ['trovi (to find)', 'trovanto (finder)', 'eltrovi (discover)'],
      category: 'Basic Roots',
      audioUrl: '',
      difficulty: 1,
    ),
    Word(
      id: 'uz_root_001',
      esperanto: 'uz-',
      english: 'use',
      pronunciation: 'UZ',
      definition: 'Use, utilize, employ',
      examples: ['uzi (to use)', 'uzanto (user)', 'uzebla (usable)'],
      category: 'Basic Roots',
      audioUrl: '',
      difficulty: 1,
    ),
    Word(
      id: 'vid_root_001',
      esperanto: 'vid-',
      english: 'see',
      pronunciation: 'VID',
      definition: 'See, view, sight',
      examples: ['vidi (to see)', 'vidanto (viewer)', 'videbla (visible)'],
      category: 'Basic Roots',
      audioUrl: '',
      difficulty: 1,
    ),
    Word(
      id: 'vol_root_001',
      esperanto: 'vol-',
      english: 'want',
      pronunciation: 'VOL',
      definition: 'Want, will, desire',
      examples: ['voli (to want)', 'volo (will)', 'malvoli (unwilling)'],
      category: 'Basic Roots',
      audioUrl: '',
      difficulty: 1,
    ),
    Word(
      id: 'ven_root_001',
      esperanto: 'ven-',
      english: 'come',
      pronunciation: 'VEN',
      definition: 'Come, arrive, approach',
      examples: ['veni (to come)', 'venanto (comer)', 'alveni (arrive)'],
      category: 'Basic Roots',
      audioUrl: '',
      difficulty: 1,
    ),
    Word(
      id: 'viv_root_001',
      esperanto: 'viv-',
      english: 'live',
      pronunciation: 'VIV',
      definition: 'Live, alive, life',
      examples: ['vivi (to live)', 'vivo (life)', 'vivanta (living)'],
      category: 'Basic Roots',
      audioUrl: '',
      difficulty: 1,
    ),
    Word(
      id: 'anim_root_001',
      esperanto: 'anim-',
      english: 'soul',
      pronunciation: 'a-NIM',
      definition: 'Soul, spirit, animate',
      examples: ['animo (soul)', 'animalo (animal)', 'senanimigi (discourage)'],
      category: 'Basic Roots',
      audioUrl: '',
      difficulty: 1,
    ),
    Word(
      id: 'bat_root_001',
      esperanto: 'bat-',
      english: 'beat',
      pronunciation: 'BAT',
      definition: 'Beat, strike, hit',
      examples: ['bati (to beat)', 'batalo (battle)', 'debati (debate)'],
      category: 'Basic Roots',
      audioUrl: '',
      difficulty: 1,
    ),
    Word(
      id: 'bru_root_001',
      esperanto: 'bru-',
      english: 'noise',
      pronunciation: 'BRU',
      definition: 'Noise, sound, loud',
      examples: ['brui (make noise)', 'bruo (noise)', 'bruegi (roar)'],
      category: 'Basic Roots',
      audioUrl: '',
      difficulty: 1,
    ),
    Word(
      id: 'dank_root_001',
      esperanto: 'dank-',
      english: 'thank',
      pronunciation: 'DANK',
      definition: 'Thank, gratitude, appreciate',
      examples: ['danki (to thank)', 'danko (thanks)', 'dankema (grateful)'],
      category: 'Basic Roots',
      audioUrl: '',
      difficulty: 1,
    ),
    Word(
      id: 'demand_root_001',
      esperanto: 'demand-',
      english: 'ask',
      pronunciation: 'de-MAND',
      definition: 'Ask, question, inquire',
      examples: ['demandi (to ask)', 'demando (question)', 'pridemandi (interrogate)'],
      category: 'Basic Roots',
      audioUrl: '',
      difficulty: 1,
    ),
    Word(
      id: 'dev_root_001',
      esperanto: 'dev-',
      english: 'must',
      pronunciation: 'DEV',
      definition: 'Must, should, obligation',
      examples: ['devi (must)', 'devo (duty)', 'devigi (compel)'],
      category: 'Basic Roots',
      audioUrl: '',
      difficulty: 1,
    ),
    Word(
      id: 'dol_root_001',
      esperanto: 'dol-',
      english: 'pain',
      pronunciation: 'DOL',
      definition: 'Pain, ache, hurt',
      examples: ['dolori (to hurt)', 'doloro (pain)', 'dolorigi (cause pain)'],
      category: 'Basic Roots',
      audioUrl: '',
      difficulty: 1,
    ),
    Word(
      id: 'dorm_root_001',
      esperanto: 'dorm-',
      english: 'sleep',
      pronunciation: 'DORM',
      definition: 'Sleep, rest, dormant',
      examples: ['dormi (to sleep)', 'dormo (sleep)', 'dormejo (bedroom)'],
      category: 'Basic Roots',
      audioUrl: '',
      difficulty: 1,
    ),
    Word(
      id: 'drink_root_001',
      esperanto: 'trink-',
      english: 'drink',
      pronunciation: 'TRINK',
      definition: 'Drink, beverage, liquid',
      examples: ['trinki (to drink)', 'trinkaĵo (beverage)', 'eltrinki (drink up)'],
      category: 'Basic Roots',
      audioUrl: '',
      difficulty: 1,
    ),
    Word(
      id: 'flu_root_001',
      esperanto: 'flu-',
      english: 'flow',
      pronunciation: 'FLU',
      definition: 'Flow, stream, current',
      examples: ['flui (to flow)', 'fluo (flow)', 'alflui (flow to)'],
      category: 'Basic Roots',
      audioUrl: '',
      difficulty: 1,
    ),
    Word(
      id: 'fort_root_001',
      esperanto: 'fort-',
      english: 'strong',
      pronunciation: 'FORT',
      definition: 'Strong, strength, force',
      examples: ['forta (strong)', 'forto (strength)', 'fortigi (strengthen)'],
      category: 'Basic Roots',
      audioUrl: '',
      difficulty: 1,
    ),
    Word(
      id: 'goj_root_001',
      esperanto: 'goĵ-',
      english: 'joy',
      pronunciation: 'GOJ',
      definition: 'Joy, happiness, delight',
      examples: ['goĵi (to enjoy)', 'goĵo (joy)', 'goĵigi (make happy)'],
      category: 'Basic Roots',
      audioUrl: '',
      difficulty: 1,
    ),
  ];

  // 专业词根 (50个)
  static final List<Word> _professionalRoots = [
    Word(
      id: 'akv_root_001',
      esperanto: 'akv-',
      english: 'water',
      pronunciation: 'AKV',
      definition: 'Water, aquatic, liquid',
      examples: ['akvo (water)', 'akvumi (water)', 'subakva (underwater)'],
      category: 'Professional Roots',
      audioUrl: '',
      difficulty: 2,
    ),
    Word(
      id: 'aer_root_001',
      esperanto: 'aer-',
      english: 'air',
      pronunciation: 'A-er',
      definition: 'Air, atmosphere, aerial',
      examples: ['aero (air)', 'aerumi (air out)', 'aeroplano (airplane)'],
      category: 'Professional Roots',
      audioUrl: '',
      difficulty: 2,
    ),
    Word(
      id: 'fajr_root_001',
      esperanto: 'fajr-',
      english: 'fire',
      pronunciation: 'FAJR',
      definition: 'Fire, flame, burn',
      examples: ['fajro (fire)', 'fajri (fire)', 'brulfajro (bonfire)'],
      category: 'Professional Roots',
      audioUrl: '',
      difficulty: 2,
    ),
    Word(
      id: 'ter_root_001',
      esperanto: 'ter-',
      english: 'earth',
      pronunciation: 'TER',
      definition: 'Earth, ground, land',
      examples: ['tero (earth)', 'enterigi (bury)', 'subtero (underground)'],
      category: 'Professional Roots',
      audioUrl: '',
      difficulty: 2,
    ),
    Word(
      id: 'lum_root_001',
      esperanto: 'lum-',
      english: 'light',
      pronunciation: 'LUM',
      definition: 'Light, bright, illuminate',
      examples: ['lumo (light)', 'lumi (shine)', 'lumigi (illuminate)'],
      category: 'Professional Roots',
      audioUrl: '',
      difficulty: 2,
    ),
    Word(
      id: 'son_root_001',
      esperanto: 'son-',
      english: 'sound',
      pronunciation: 'SON',
      definition: 'Sound, audio, acoustic',
      examples: ['sono (sound)', 'soni (sound)', 'resoni (resound)'],
      category: 'Professional Roots',
      audioUrl: '',
      difficulty: 2,
    ),
    Word(
      id: 'kolor_root_001',
      esperanto: 'kolor-',
      english: 'color',
      pronunciation: 'ko-LOR',
      definition: 'Color, hue, tint',
      examples: ['koloro (color)', 'kolori (color)', 'senkolora (colorless)'],
      category: 'Professional Roots',
      audioUrl: '',
      difficulty: 2,
    ),
    Word(
      id: 'natur_root_001',
      esperanto: 'natur-',
      english: 'nature',
      pronunciation: 'na-TUR',
      definition: 'Nature, natural, native',
      examples: ['naturo (nature)', 'natura (natural)', 'denature (denature)'],
      category: 'Professional Roots',
      audioUrl: '',
      difficulty: 2,
    ),
    Word(
      id: 'art_root_001',
      esperanto: 'art-',
      english: 'art',
      pronunciation: 'ART',
      definition: 'Art, skill, craft',
      examples: ['arto (art)', 'artisto (artist)', 'artaĵo (artwork)'],
      category: 'Professional Roots',
      audioUrl: '',
      difficulty: 2,
    ),
    Word(
      id: 'sci_tech_root_001',
      esperanto: 'teknik-',
      english: 'technique',
      pronunciation: 'tek-NIK',
      definition: 'Technique, technical, skill',
      examples: ['tekniko (technique)', 'teknika (technical)', 'teknologio (technology)'],
      category: 'Professional Roots',
      audioUrl: '',
      difficulty: 2,
    ),
    Word(
      id: 'musik_root_001',
      esperanto: 'muzik-',
      english: 'music',
      pronunciation: 'mu-ZIK',
      definition: 'Music, musical, melody',
      examples: ['muziko (music)', 'muzika (musical)', 'muzikisto (musician)'],
      category: 'Professional Roots',
      audioUrl: '',
      difficulty: 2,
    ),
    Word(
      id: 'danc_root_001',
      esperanto: 'danc-',
      english: 'dance',
      pronunciation: 'DANC',
      definition: 'Dance, dancing, movement',
      examples: ['danci (to dance)', 'danco (dance)', 'dancisto (dancer)'],
      category: 'Professional Roots',
      audioUrl: '',
      difficulty: 2,
    ),
    Word(
      id: 'kant_root_001',
      esperanto: 'kant-',
      english: 'sing',
      pronunciation: 'KANT',
      definition: 'Sing, song, vocal',
      examples: ['kanti (to sing)', 'kanto (song)', 'kantisto (singer)'],
      category: 'Professional Roots',
      audioUrl: '',
      difficulty: 2,
    ),
    Word(
      id: 'sport_root_001',
      esperanto: 'sport-',
      english: 'sport',
      pronunciation: 'SPORT',
      definition: 'Sport, athletic, game',
      examples: ['sporto (sport)', 'sporti (do sports)', 'sportisto (athlete)'],
      category: 'Professional Roots',
      audioUrl: '',
      difficulty: 2,
    ),
    Word(
      id: 'lud_root_001',
      esperanto: 'lud-',
      english: 'play',
      pronunciation: 'LUD',
      definition: 'Play, game, recreation',
      examples: ['ludi (to play)', 'ludo (game)', 'ludilo (toy)'],
      category: 'Professional Roots',
      audioUrl: '',
      difficulty: 2,
    ),
    Word(
      id: 'fest_root_001',
      esperanto: 'fest-',
      english: 'feast',
      pronunciation: 'FEST',
      definition: 'Feast, festival, celebration',
      examples: ['festi (celebrate)', 'festo (feast)', 'festtago (holiday)'],
      category: 'Professional Roots',
      audioUrl: '',
      difficulty: 2,
    ),
    Word(
      id: 'ricev_root_001',
      esperanto: 'ricev-',
      english: 'receive',
      pronunciation: 'ri-TSEV',
      definition: 'Receive, get, accept',
      examples: ['ricevi (to receive)', 'ricevo (receipt)', 'ricevanto (recipient)'],
      category: 'Professional Roots',
      audioUrl: '',
      difficulty: 2,
    ),
    Word(
      id: 'send_root_001',
      esperanto: 'send-',
      english: 'send',
      pronunciation: 'SEND',
      definition: 'Send, dispatch, transmit',
      examples: ['sendi (to send)', 'sendo (sending)', 'sendanto (sender)'],
      category: 'Professional Roots',
      audioUrl: '',
      difficulty: 2,
    ),
    Word(
      id: 'ating_root_001',
      esperanto: 'ating-',
      english: 'reach',
      pronunciation: 'a-TING',
      definition: 'Reach, attain, achieve',
      examples: ['atingi (to reach)', 'atingebla (reachable)', 'neatingebla (unreachable)'],
      category: 'Professional Roots',
      audioUrl: '',
      difficulty: 2,
    ),
    Word(
      id: 'kresk_root_001',
      esperanto: 'kresk-',
      english: 'grow',
      pronunciation: 'KRESK',
      definition: 'Grow, increase, develop',
      examples: ['kreski (to grow)', 'kresko (growth)', 'kreskigi (make grow)'],
      category: 'Professional Roots',
      audioUrl: '',
      difficulty: 2,
    ),
  ];

  // 获取所有第七批次词汇
  static List<Word> getAllWords() {
    return [
      ..._moreBasicRoots,
      ..._professionalRoots,
    ];
  }

  // 获取更多基础词根
  static List<Word> getMoreBasicRoots() => _moreBasicRoots;

  // 获取专业词根
  static List<Word> getProfessionalRoots() => _professionalRoots;

  // 获取所有类别
  static List<String> getAllCategories() {
    return getAllWords().map((word) => word.category).toSet().toList()..sort();
  }

  // 根据类别获取词汇
  static List<Word> getWordsByCategory(String category) {
    return getAllWords().where((word) => word.category == category).toList();
  }

  // 根据难度获取词汇
  static List<Word> getWordsByDifficulty(int difficulty) {
    return getAllWords().where((word) => word.difficulty == difficulty).toList();
  }
} 